/**
 * 给定一个非负整数 numRows，生成「杨辉三角」的前 numRows 行。
 * 在「杨辉三角」中，每个数是它左上方和右上方的数的和。
 * 
 * 
 * 1 <= numRows <= 30
 */

class Solution {
public:
    vector<vector<int>> generate(int numRows) {
        vector<vector<int>> ans(numRows,vector<int>(numRows));
        ans[0][0] = 1;
        for(int i = 1;i < numRows;i++){
            for(int j = 0;j < numRows;j++){
                if(j == 0){
                    ans[i][j] = ans[i - 1][j];
                }else{
                    ans[i][j] = ans[i - 1][j - 1] + ans[i - 1][j];
                }
            }
        }
        for(int i = 0;i < numRows;i++)ans[i].resize(i + 1);
        return ans;
    }
};